A creative prompt generator by The Prince of Darkness himself.<<audio "scribble" play>>
<<img "splashscreen.gif" "Created by Tom Hambly">>
<<timed 5s>><<goto "Start">><</timed>><<script>>
var subjectArray = [];
if (variables().subjectType == "All Subjects") {
subjectArray = variables().animals.concat(variables().jobs);
} else if (variables().subjectType == "Only Animals") {
subjectArray = subjectArray.concat(variables().animals);
} else {
subjectArray = subjectArray.concat(variables().jobs);
}
variables().subjects = variables().animals.concat(variables().jobs);
// Get a random activity...
let rndActivityIndex = Math.floor(Math.random() * variables().activities.length);
variables().rndActivity = variables().activities[rndActivityIndex];
// Get a random subject from everything...
let rndSubjectOneIndex = Math.floor(Math.random() * subjectArray.length);
variables().rndSubjectOne = subjectArray[rndSubjectOneIndex];
// Get a random second subject (regardless of whether we need it or not)
let rndSubjectTwoIndex = Math.floor(Math.random() * subjectArray.length);
variables().rndSubjectTwo = subjectArray[rndSubjectTwoIndex];
// Get a random roll message...
let rndRollMsgIndex = Math.floor(Math.random() * variables().allRollMsgs.length);
variables().rollMsg = variables().allRollMsgs[rndRollMsgIndex];
// Get a random medium...
let rndMediumIndex = Math.floor(Math.random() * variables().mediums.length);
variables().medium = variables().mediums[rndMediumIndex] + "...";
<</script>>
<img src="images/title.gif" tabindex="0" alt="Count Draculas Big Box Idea Generator"
onmouseover="this.src = 'images/title-open.gif'"
onfocusin="this.src = 'images/title-open.gif'"
onmouseleave="this.src = 'images/title-close.gif'"
onfocusout="this.src = 'images/title-close.gif'">
<span id="boxy"><<if $subjectCount == 1>><<include "SingleSubjectScenario">><<else>><<include "TwinSubjectScenario">><</if>></span>
<<button "Reroll">><<testroll>><<replace "#boxy">><<if $subjectCount == 1>><<include "SingleSubjectScenario">><<else>><<include "TwinSubjectScenario">><</if>><</replace>><<rollsfx>><</button>>
<span class="instruct">Press [S] to open settings</span>
<<keydown "s">> <<if $settingsAreOpen == false>><<opensettings>><</if>><</keydown>>
<<keydown "escape">> <<if $settingsAreOpen == false>><<opensettings>><</if>><</keydown>>
<<keydown "space">> <<goto "Start">><</keydown>><<widget "testroll">>
<<script>>
var subjectArray = [];
if (variables().subjectType == "All Subjects") {
subjectArray = variables().animals.concat(variables().jobs);
} else if (variables().subjectType == "Only Animals") {
subjectArray = subjectArray.concat(variables().animals);
} else {
subjectArray = subjectArray.concat(variables().jobs);
}
variables().subjects = variables().animals.concat(variables().jobs);
// Get a random activity...
let rndActivityIndex = Math.floor(Math.random() * variables().activities.length);
variables().rndActivity = variables().activities[rndActivityIndex];
// Get a random subject from everything...
let rndSubjectOneIndex = Math.floor(Math.random() * subjectArray.length);
variables().rndSubjectOne = subjectArray[rndSubjectOneIndex];
// Get a random second subject (regardless of whether we need it or not)
let rndSubjectTwoIndex = Math.floor(Math.random() * subjectArray.length);
variables().rndSubjectTwo = subjectArray[rndSubjectTwoIndex];
// Get a random roll message...
let rndRollMsgIndex = Math.floor(Math.random() * variables().allRollMsgs.length);
variables().rollMsg = variables().allRollMsgs[rndRollMsgIndex];
// Get a random medium...
let rndMediumIndex = Math.floor(Math.random() * variables().mediums.length);
variables().medium = variables().mediums[rndMediumIndex] + "...";
<</script>>
<</widget>><b><i>Count Dracula's Big Box Idea Generator</i></b> is a creative prompt generator designed by The Prince of Darkness himself.
Use responsibly on any creative project or for a creative warm-up.
Unearthed from a digital crypt by <i><b>Tom Hambly</b></i>.
<a href="https://tomhambly.itch.io/" target="page">Itch.io</a> | <a href="https://www.instagram.com/itstomhambly/" target="page">Instagram</a>
<<cycle "$subjectCount" autoselect>>
<<option "One Subject" 1>>
<<option "Two Subjects" 2>> <</cycle>>
<<cycle "$subjectType" autoselect>>
<<option "All Subjects" "All Subjects">>
<<option "Only Animals" "Only Animals">>
<<option "Only People" "Only People">>
<</cycle>>
<<link "Apply">><<close>><<goto "Start">><</link>>An activity is $activities[3]
An animal is $animals[54]
A job is $jobs[5]
A whole list $subjects.length long!
A random activity <<isare>> $rndActivity
/* This works, but isn't ideal for what I need right now. It needs an extra component?*/
<<link "<span id=\"subjectText\">One Subject</span>">><<toggleSubjects>><</link>>
/* Put these back in if we want to put the medium in again... */
<<if $showMedium == 1>><span class="instruct">$medium</span><<else>><</if>>
<<cycle "$showMedium" autoselect>>
<<option "Show Medium" 1>>
<<option "Hide Medium" 0>>
<</cycle>>
<<img "title.gif" "Count Draculas Big Box Idea Generator">>
<<img "title-open.gif" "Count Draculas Big Box Idea Generator">>
<<img "title-close.gif" "Count Draculas Big Box Idea Generator">>
<<mouseover>><<img "title.gif" "Count Draculas Big Box Idea Generator">><<onmousein>><<img "title-open.gif" "Count Draculas Big Box Idea Generator">><<onmouseout>><<img "title-close.gif" "Count Draculas Big Box Idea Generator">><</mouseover>><<anone $rndSubjectOne>> <span class="see">$rndSubjectOne</span> <<isare>> <span class="see">$rndActivity.</span><<anone $rndSubjectOne>> <span class="see">$rndSubjectOne</span> and <<anone $rndSubjectTwo>> <span class="see">$rndSubjectTwo</span> <<isare>> <span class="see">$rndActivity.</span><<set $activities = "oh">>
<<set $animals = "animal">>
<<set $jobs = "jobs">>
<<set $subjects = "subjects">>
<<set $subjectType = "All Subjects">>
<<set $allRollMsgs = ["Reroll", "Roll again?", "One more?", "Hit me!", "I'm looking for something else."]>>
<<set $rollMsg = "na">>
<<set $showMedium = 1>>
<<set $medium = "na">>
<<set $mediums = ["Write a poem about", "Write a story about", "Sing a song about", "Create a cinematic universe about", "Design a game about", "Daydream about",
"Paint a painting of", "Draw a picture of", "Write a play about", "Bake a cake inspired by", "Write a news article about", "Create a sculpture of"]>>
<<set $vowels = ["a", "e", "i", "o", "u"]>>
<<set $rndActivity = "na">>
<<set $rndSubjectOne = "na">>
<<set $rndSubjectTwo = "na">>
<<set $subjectCount = 1>>
<<set $settingsAreOpen = false>>
<<include "InitArrays">>
<<cacheaudio "scribble" "sounds/pencilscribble-1.mp3">>
<<set $rollSFXs = ["roll1", "roll2", "roll3", "roll4", "roll5"]>>
<<cacheaudio "roll1" "sounds/roll1.mp3">>
<<cacheaudio "roll2" "sounds/roll2.mp3">>
<<cacheaudio "roll3" "sounds/roll3.mp3">>
<<cacheaudio "roll4" "sounds/roll4.mp3">>
<<cacheaudio "roll5" "sounds/roll5.mp3">><<script>>
variables().activities = ["a cool wizard",
"a crime boss",
"a door to door salesman",
"a famous superhero",
"a long way from home",
"a movie star",
"a notorious villain",
"a pop star",
"a sexy vampire",
"admiring a view",
"an assassin",
"at a comic convention",
"at a concert",
"at a doctor's appointment",
"at a family gathering",
"at a funeral",
"at a job interview",
"at a long lay-over",
"at a sleepover",
"at school",
"at the beach",
"at the dentist",
"attempting a world record",
"attempting to kick the winning goal",
"auditioning for a role",
"bird watching",
"buying a used car",
"captain of a pirate ship",
"caught in the rain",
"changing a diaper",
"chasing after their dog",
"daydreaming",
"doing a driving test",
"doing an eye examination",
"doing chores",
"doing renovations",
"drunk",
"entering the pearly gates",
"escaping a volcanic eruption",
"escaping an avalanche",
"exercising",
"flirting",
"gambling",
"gardening",
"getting haunted",
"getting married",
"getting pranked",
"hangry",
"hiking up a mountain",
"in a foreign country",
"in a road rage incident",
"in a submarine",
"in disguise",
"in front of a judge",
"in jail",
"in marriage counseling",
"in the principal's office",
"investigating a crime",
"is a wrestling personality",
"late for a party",
"late for work",
"learning an instrument",
"learning to dance",
"learning to skateboard",
"learning to surf",
"looking for a new home",
"looking for buried treasure",
"looking for love",
"looking for their car keys",
"lost at sea",
"lost in a maze",
"lost in a shopping centre",
"lost in space",
"lost in the desert",
"lost in the woods",
"moving house",
"on a boat",
"on a camping trip",
"on a diet",
"on a playground",
"on a quest",
"on a reality TV show",
"on a road trip",
"on a train",
"on the dark web",
"on the news",
"on the run from the police",
"on the toilet",
"ordering take away",
"out for breakfast",
"out for dinner",
"out for lunch",
"playing a video game",
"proposing",
"pulling a sick day",
"putting ikea furniture together",
"reading a good book",
"robbing a bank",
"running a marathon",
"running away from home",
"running for president",
"shit out of luck",
"skinny dipping",
"sky-diving",
"stuck down a well",
"stuck in traffic",
"stuck up a tree",
"studying architecture",
"talking too loudly at the movies",
"teaching a complicated board game",
"trapped in a public toilet",
"trick or treating",
"trying to build a fire",
"trying to fall asleep",
"trying to parallel park",
"waiting in line for a ride",
"walking their dog",
"world class chef"]
variables().animals = ["aardvark",
"alligator",
"anaconda",
"ant",
"ant-eater",
"armadillo",
"axolotl",
"bat",
"bear",
"beaver",
"bee",
"boa constrictor",
"butterfly",
"capybara",
"cat",
"caterpillar",
"chicken",
"cow",
"crocodile",
"deer",
"dingo",
"dog",
"dolphin",
"donkey",
"dove",
"duck",
"echidna",
"eel",
"elephant",
"elk",
"emu",
"fish",
"flying fish",
"fox",
"frog",
"gazelle",
"giraffe",
"goat",
"goose",
"gopher",
"gorilla",
"groundhog",
"hammerhead shark",
"hawk",
"hippo",
"horse",
"jellyfish",
"kangaroo",
"killer whale",
"koala",
"leapord",
"lemur",
"lion",
"lizard",
"llama",
"monkey",
"mountain lion",
"octopus",
"orangutan",
"ostrich",
"otter",
"owl",
"panda",
"pelican",
"penguin",
"pig",
"pigeon",
"polar bear",
"pony",
"porcupine",
"possum",
"racoon",
"red panda",
"rooster",
"sea eagle",
"seagull",
"seahorse",
"seal",
"shark",
"sheep",
"sloth",
"slug",
"snail",
"snake",
"spider",
"squirrel",
"swan",
"tiger",
"toad",
"tortoise",
"toucan",
"turtle",
"vulture",
"wallaby",
"walrus",
"whale shark",
"wolf",
"wombat",
"woodpecker",
"zebra"]
variables().jobs = ["accountant",
"acrobat",
"actor",
"aged care worker",
"antiquist",
"archaeologist",
"architect",
"artist",
"assassin",
"astronaut",
"athlete",
"author",
"baby sitter",
"banker",
"builder",
"bus driver",
"carpenter",
"CEO",
"chef",
"clown",
"comedian",
"creatve consultant",
"criminal",
"dancer",
"delivery driver",
"detective",
"diver",
"doctor",
"dog walker",
"door to door salesman",
"electrician",
"engineer",
"explorer",
"farmer",
"fashion designer",
"film-maker",
"fire fighter",
"fisherman",
"footballer",
"furniture removalist",
"garbageman",
"gardener",
"gold prospector",
"groundskeeper",
"hitman",
"hunter",
"influencer",
"journalist",
"judge",
"lawyer",
"lollipop lady",
"lumberjack",
"magician",
"maid",
"matchmaker",
"mechanic",
"miner",
"model",
"monk",
"musician",
"news anchor",
"nun",
"nurse",
"optometrist",
"paramedic",
"paranormal investigator",
"personal trainer",
"photographer",
"pilot",
"plumber",
"police officer",
"politician",
"professor",
"psychic",
"race car driver",
"real estate agent",
"reality star",
"sailor",
"security guard",
"self-help guru",
"singer",
"soldier",
"student",
"superhero",
"support technician",
"talk show host",
"teacher",
"thief",
"tradie",
"train driver",
"TV personality",
"vet",
"voice over artist",
"waiter",
"weather reporter",
"zoo keeper"]
<</script>><<widget "isare">><<if $subjectCount == 1>>is<<else>>are<</if>><</widget>>
<<widget "anone">><<if $vowels.includesAny($args[0].first())>>an<<else>>a<</if>><</widget>>
<<widget "img">><img @src="'images/' + _args[0]" @alt="_args[1]"> <</widget>>
<<widget "rollsfx">><<audio $rollSFXs.random() play>><</widget>>